package qc.module.qms.entity;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * QmsRawdataSync
 *
 * @author QuCheng Tech
 * @since 2025/11/23
 */
@Data
@TableName("qms_rawdata_sync")
public class QmsRawdataSync implements Serializable, Cloneable {
    /**
     * 来源数据库表编码;来源数据库表编码
     */
    @TableId
    private String tablecode;
    /**
     * 名称
     */
    private String name;
    /**
     * 描述;描述信息
     */
    private String description;
    /**
     * 是否根据时间进行同步;是否根据时间列进行同步控制，false表示根据自增ID进行同步
     */
    private Boolean ctrlbytm;
    /**
     * 同步控制列名;使用记录ID或写入/更新时间列控制同步
     */
    private String ctrlcolumn;
    /**
     * 站点编码列名
     */
    private String stcdcolumns;
    /**
     * 数据时标列名
     */
    private String tmcolumn;
    /**
     * 数据值列名;多个使用逗号分隔；可以定义为转换关系，如：z-v1,w-v2
     */
    private String dvcolumns;
    /**
     * 通道类型列名;指示数据的来源通道类型的列名称，可以为空
     */
    private String chlcolumn;
    /**
     * 通道类型转换;来源通道类型与目标原始数据中的通道类型对应关系，可以为空;按照CommunicationChannelTypeEnum枚举值的顺序对应来源通道类型字符串，多个使用逗号分隔；
     */
    private String chlmap;
    /**
     * 目标数据库表编码;必须指定，否则数据库表编码重复无法区分
     */
    private String desttablecode;
    /**
     * 目标数据值列名;多个使用逗号分隔，不设置时保持与来源列名相同
     */
    private String destdvcolumns;
    /**
     * 写入时间
     */
    private LocalDateTime intm;
    /**
     * 最后修改时间
     */
    private LocalDateTime uptm;
    /**
     * 最新同步时间;最近进行同步执行的时间
     */
    private LocalDateTime synctm;
    /**
     * 最新同步数据时标
     */
    private LocalDateTime syncdatatm;
    /**
     * 最新同步记录ID/时间
     */
    private String syncctrlvalue;
    /**
     * 最新同步处理信息
     */
    private String syncmsg;
}
